The disclosure relates generally to providing image content to, and displaying image content on, displays, and more particularly to methods and apparatus for reducing frame delay and other problems associated with providing and displaying image content on displays with a variable refresh rate. Displays that support variable refresh rates typically operate within a range of supported refresh rates at which the displayed image must be updated periodically. Discrepancies in the viewed image may result if the display is not refreshed at a refresh rate within its supported range of refresh rates. For example, a display with a variable refresh rate may have a supported refresh rate range between a minimum display refresh rate, and a maximum display refresh rate, whereby the minimum and maximum display refresh rates define the boundaries of the range of supported refresh rates. Frames for display may be rendered and made available (e.g. presented) to the display at a rate within its supported refresh rate range. The render rate is the rate at which frames, typically new frames, are generated. For example, a graphics processing unit (GPU) may generate new frames at a certain render rate. Once rendered, new frames may be presented to the display at a presentation rate.
For example, a display may be displaying a current frame when a new frame is rendered and made available at a rate within the supported refresh rate range of the display. In this instance, the display may be refreshed with the new frame at a time dictated by this refresh rate. If, however, a new frame is rendered and made available for display at a rate less than the minimum display refresh rate, the display is refreshed with a current frame at a time corresponding to the minimum display refresh rate, such that the display is refreshed with the same current frame more than once. This can prevent, for example, image tearing (i.e. the displaying of an image whereby part of the image is from one frame, and another part of the image is from another frame). Thereafter, the display may be refreshed with the new frame at a rate corresponding to the maximum display refresh rate.
For example, a display may support a refresh rate range of 30 Hz to 120 Hz. Accordingly, it may not be possible to refresh the display at a rate faster than at a rate of 120 Hz without causing image tearing. Thus, if the display is refreshed with a current frame, and a new frame does not become available at a rate within 30 Hz to 120 Hz, the display is refreshed at a time corresponding to a 30 Hz refresh rate with the same current frame. The display, however, cannot be refreshed with the new frame, without image tearing, at a rate faster than 120 Hz. Thus, although a new frame may be rendered at a time corresponding to a render rate faster than 120 Hz (for example, 5 msec), the display may not be refreshed with the newly rendered frame sooner than until about 8.33 milliseconds (corresponding to a refresh rate of 120 Hz, i.e. 1/120 Hz seconds) have passed since the last display refresh. Thus, because the displaying of the new frame may be delayed, input lag, e.g., the amount of time between when a change to a display image is provided and when the result appears on the display, may be increased. For example, in video gaming, a key desire is to minimize input lag, so that when a user provides for an action (e.g. hits a key to move a character), the result of that action is seen as quickly as possible on the display.
Other problems, such as display flickering, may occur if a display is updated at a rate close to its maximum or minimum supported refresh rates. For example, if a display is updated at a rate near the minimum supported display refresh rate, followed by updating the display at a rate near its maximum supported display refresh rate, the display may flicker, causing unwanted discrepancies in the viewed image. Thus, for displays experiencing these issues, images ideally would be rendered and made available to them at rates well within their supported display refresh rate range. Therefore there is a need to minimize frame delays that may increase input lag times, along with other undesirable effects such as display flickering, in the displaying of images on displays that support variable refresh rates.